library(tidyverse)
library(shiny)
library(ggplot2)
library(CodeClanData)
library(plotly)
game_sales <- CodeClanData::game_sales
sales_genre <- game_sales %>% 
  group_by(genre, year_of_release) %>% 
  summarise(sales = round(mean(sales), 2), .groups = "keep") %>% 
  mutate(year_of_release = as.factor(year_of_release)) %>% 
  arrange(year_of_release) %>% 
  filter(year_of_release == "2012") %>% 
  ggplot(aes(x = genre,
             y = sales,
             fill = "coral"))+
  geom_col()+
  coord_flip()+
  theme(panel.grid = element_blank(),
        panel.background = element_blank(),
        legend.position = "none")+
  labs(x = "Genre",
       y = "Sales (£m)")
ggplotly(sales_genre)
score_genre <- game_sales %>% 
  group_by(genre, year_of_release) %>% 
  summarise(user_score = round(mean(user_score), 2), .groups = "keep") %>% 
  mutate(year_of_release = as.factor(year_of_release)) %>% 
  arrange(year_of_release) %>% 
  filter(year_of_release == "2012") %>% 
  ggplot(aes(x = genre,
             y = user_score,
             fill = "coral"))+
  geom_col()+
  coord_flip()+
  theme(panel.grid = element_blank(),
        panel.background = element_blank(),
        legend.position = "none")+
  labs(x = "Genre",
       y = "User Score")
ggplotly(score_genre)
year_vs_sales <- game_sales %>% 
  group_by(genre, year_of_release) %>% 
  summarise(sales = round(mean(sales), 2), .groups = "keep") %>% 
  filter(genre == "Action") %>% 
ggplot(aes(x = year_of_release,
             y = sales,
             fill = genre))+
  geom_col(show.legend = F)+
  coord_flip()+
  theme(panel.grid = element_blank(),
        panel.background = element_blank())+
  labs(x = "Release Year",
       y = "Sales (£m)")
ggplotly(year_vs_sales)
year_vs_score <- game_sales %>% 
  group_by(genre, year_of_release) %>% 
  summarise(user_score = round(mean(user_score), 2), .groups = "keep") %>% 
  filter(genre == "Action") %>% 
  ggplot(aes(x = year_of_release,
             y = user_score,
             fill = genre))+
  geom_col(show.legend = F)+
 coord_flip()+
  theme(panel.grid = element_blank(),
        panel.background = element_blank())+
  labs(x = "Release Year",
       y = "User Score")
ggplotly(year_vs_score)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoc2hpbnkpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShDb2RlQ2xhbkRhdGEpCmxpYnJhcnkocGxvdGx5KQoKYGBgCmBgYHtyfQpnYW1lX3NhbGVzIDwtIENvZGVDbGFuRGF0YTo6Z2FtZV9zYWxlcwpgYGAKCgoKYGBge3J9CnNhbGVzX2dlbnJlIDwtIGdhbWVfc2FsZXMgJT4lIAogIGdyb3VwX2J5KGdlbnJlLCB5ZWFyX29mX3JlbGVhc2UpICU+JSAKICBzdW1tYXJpc2Uoc2FsZXMgPSByb3VuZChtZWFuKHNhbGVzKSwgMiksIC5ncm91cHMgPSAia2VlcCIpICU+JSAKICBtdXRhdGUoeWVhcl9vZl9yZWxlYXNlID0gYXMuZmFjdG9yKHllYXJfb2ZfcmVsZWFzZSkpICU+JSAKICBhcnJhbmdlKHllYXJfb2ZfcmVsZWFzZSkgJT4lIAogIGZpbHRlcih5ZWFyX29mX3JlbGVhc2UgPT0gIjIwMTIiKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZ2VucmUsCiAgICAgICAgICAgICB5ID0gc2FsZXMsCiAgICAgICAgICAgICBmaWxsID0gImNvcmFsIikpKwogIGdlb21fY29sKCkrCiAgY29vcmRfZmxpcCgpKwogIHRoZW1lKHBhbmVsLmdyaWQgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpKwogIGxhYnMoeCA9ICJHZW5yZSIsCiAgICAgICB5ID0gIlNhbGVzICjCo20pIikKYGBgCmBgYHtyfQpnZ3Bsb3RseShzYWxlc19nZW5yZSkKYGBgCgpgYGB7cn0Kc2NvcmVfZ2VucmUgPC0gZ2FtZV9zYWxlcyAlPiUgCiAgZ3JvdXBfYnkoZ2VucmUsIHllYXJfb2ZfcmVsZWFzZSkgJT4lIAogIHN1bW1hcmlzZSh1c2VyX3Njb3JlID0gcm91bmQobWVhbih1c2VyX3Njb3JlKSwgMiksIC5ncm91cHMgPSAia2VlcCIpICU+JSAKICBtdXRhdGUoeWVhcl9vZl9yZWxlYXNlID0gYXMuZmFjdG9yKHllYXJfb2ZfcmVsZWFzZSkpICU+JSAKICBhcnJhbmdlKHllYXJfb2ZfcmVsZWFzZSkgJT4lIAogIGZpbHRlcih5ZWFyX29mX3JlbGVhc2UgPT0gIjIwMTIiKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gZ2VucmUsCiAgICAgICAgICAgICB5ID0gdXNlcl9zY29yZSwKICAgICAgICAgICAgIGZpbGwgPSAiY29yYWwiKSkrCiAgZ2VvbV9jb2woKSsKICBjb29yZF9mbGlwKCkrCiAgdGhlbWUocGFuZWwuZ3JpZCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgbGFicyh4ID0gIkdlbnJlIiwKICAgICAgIHkgPSAiVXNlciBTY29yZSIpCmBgYApgYGB7cn0KZ2dwbG90bHkoc2NvcmVfZ2VucmUpCmBgYAoKCmBgYHtyfQp5ZWFyX3ZzX3NhbGVzIDwtIGdhbWVfc2FsZXMgJT4lIAogIGdyb3VwX2J5KGdlbnJlLCB5ZWFyX29mX3JlbGVhc2UpICU+JSAKICBzdW1tYXJpc2Uoc2FsZXMgPSByb3VuZChtZWFuKHNhbGVzKSwgMiksIC5ncm91cHMgPSAia2VlcCIpICU+JSAKICBmaWx0ZXIoZ2VucmUgPT0gIkFjdGlvbiIpICU+JSAKZ2dwbG90KGFlcyh4ID0geWVhcl9vZl9yZWxlYXNlLAogICAgICAgICAgICAgeSA9IHNhbGVzLAogICAgICAgICAgICAgZmlsbCA9IGdlbnJlKSkrCiAgZ2VvbV9jb2woc2hvdy5sZWdlbmQgPSBGKSsKICBjb29yZF9mbGlwKCkrCiAgdGhlbWUocGFuZWwuZ3JpZCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpKSsKICBsYWJzKHggPSAiUmVsZWFzZSBZZWFyIiwKICAgICAgIHkgPSAiU2FsZXMgKMKjbSkiKQpgYGAKYGBge3J9CmdncGxvdGx5KHllYXJfdnNfc2FsZXMpCmBgYAoKCmBgYHtyfQp5ZWFyX3ZzX3Njb3JlIDwtIGdhbWVfc2FsZXMgJT4lIAogIGdyb3VwX2J5KGdlbnJlLCB5ZWFyX29mX3JlbGVhc2UpICU+JSAKICBzdW1tYXJpc2UodXNlcl9zY29yZSA9IHJvdW5kKG1lYW4odXNlcl9zY29yZSksIDIpLCAuZ3JvdXBzID0gImtlZXAiKSAlPiUgCiAgZmlsdGVyKGdlbnJlID09ICJBY3Rpb24iKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0geWVhcl9vZl9yZWxlYXNlLAogICAgICAgICAgICAgeSA9IHVzZXJfc2NvcmUsCiAgICAgICAgICAgICBmaWxsID0gZ2VucmUpKSsKICBnZW9tX2NvbChzaG93LmxlZ2VuZCA9IEYpKwogY29vcmRfZmxpcCgpKwogIHRoZW1lKHBhbmVsLmdyaWQgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSkrCiAgbGFicyh4ID0gIlJlbGVhc2UgWWVhciIsCiAgICAgICB5ID0gIlVzZXIgU2NvcmUiKQpgYGAKYGBge3J9CmdncGxvdGx5KHllYXJfdnNfc2NvcmUpCmBgYAoK